package com.tao.static_;

public class StaticMethodDetail {
    public static void main(String[] args) {
        AA.method1();
        AA aa = new AA();
        aa.method1();
        //类方法可以通过类名调用，也可以通过对象名调用。

        //AA.method2();错误
        aa.method2();
        //普通方法和对象有关，需要通过对象名调用，比如对象名.方法名(参数)，不能通过类名调用
    }
}
class AA{
    private int n1 = 1;
    private static int n2 = 2;
    public static void method1(){
        //this.method2(); super.method1();错误，类方法中不能出现this和super
        System.out.println("AA.method1()");
    }
    public void method2(){
        System.out.println("AA.method2()");
    }

    //类方法(静态方法)中 只能访问 静态变量 或静态方法
    public static void method3(){
        //System.out.println(n1);错误
        System.out.println(n2);
        method1();
        //method2();错误
    }

    //普通成员方法，既可以访问非静态成员，也可以访问静态成员
    public void method4(){
        System.out.println(n1);
        System.out.println(n2);
        method1();
        method2();
    }
}